/* $Id: UserServiceSecurityDAO.java 
 * Copyright (C) 2011, TRAKHEES
 *  
 * Revision History
 *
 * Date  			Author 		    	Remarks
 * ---------------------------------------------------------------------------------
 *
 */
package ae.pcfc.etks.online.common.dao;

import java.util.List;

import ae.pcfc.etks.online.common.domain.UserServiceSecurity;

public interface UserServiceSecurityDAO {
	
	
	/**
	 * add
	 * Method to add a user service security domain object in the database
	 * @param userServiceSecurity
	 * void
	 */
	public void add(UserServiceSecurity userServiceSecurity);
	/**
	 * delete
	 * Method to delete a user service security domain object in the database
	 * @param userServiceSecurity
	 * void
	 */
	public void delete(UserServiceSecurity userServiceSecurity);
	/**
	 * findByUserName
	 * Method to find the list of user service security objects associated with a user
	 * @param username
	 * @return
	 * List<UserServiceSecurity>
	 */
	public List<UserServiceSecurity> findByUserName(String username);
	/**
	 * findByUserNameWithoutDefault
	 * Method to find the list of user service security domain objects except the user service securities associated with the specified default service codes 
	 * @param username
	 * @param arrDefaults
	 * @return
	 * List<UserServiceSecurity>
	 */
	public List<UserServiceSecurity> findByUserNameWithoutDefault(String username, String[] arrDefaults);
	/**
	 * findUserServiceSecurity
	 * Method to find the user service security objects based on the user service security object which contains the field values for filtering
	 * @param userServiceSecurity
	 * @return
	 * List<UserServiceSecurity>
	 */
	public List<UserServiceSecurity> findUserServiceSecurity(UserServiceSecurity userServiceSecurity);
}
